package com.roc.dao.operator;

import java.util.List;

import com.roc.bean.MenuBean;
import com.roc.dao.DaoException;
import com.roc.dao.IBaseDao;
import com.roc.pojo.MerchantModuleRight;
import com.roc.pojo.Operators;

/**
 * 
 * @author 陈锴
 * 
 * 操作员权限管理
 *
 */

public interface IPowerInfoDao extends IBaseDao{

	
	//查询操作员权限
	List<MerchantModuleRight>  queryOperatorPowerInfoDao(String accountNo) throws DaoException;

	/**
	 * 按角色类型查询对应权限 
	 * @param logingOperators 操作员
	 * @param type  查询类别   null为收单管理平台  "0"为数据分析平台
	 * */
	List<MenuBean> queryModuleCategoryList(Operators logingOperators,String type) throws DaoException;

	/**
	 * 查询操作员所拥有的权限
	 * @param accountNo 账号
	 * @param type  查询类别  null为收单管理平台  "0"为数据分析平台
	 * */
	List<MerchantModuleRight> queryModuleTellerByNo(String accountNo,String type) throws DaoException;
	
	/**
	 * 删除操作员权限
	 * @param accountNo 删除的操作员账号
	 * @param type  类别  null为收单管理平台  "0"为数据分析平台
	 * */
	void removeModuleOperator(String accountNo,String type) throws DaoException;
	
	boolean updateByAccountNo(String AccountNo)throws DaoException;
	
	Operators queryByAccountNo(String AccountNo) throws DaoException;

	 
	/**
	 * 通过 名称 查询 代理商信息
	 * @param realName 查询信息
	 * @param orgCode 机构号
	 * @param flag 标志，0，查询操作表内所有的信息，1，查询 收单事业部下的信息
	 * @return 代理商信息
	 * @throws DaoException
	 */
	List<Operators> queryRealNameInfoByName(String realName , String orgCode, String roleType, int flag) throws DaoException;
	
	/**
	 * 通过　当前登陆账号id　查询　仓库导入的SN个数
	 * @param opId 当前登陆账号id
	 * @return 仓库导入的SN个数
	 * @throws DaoException
	 */
	 List<Object> selSnCount( Long opId ) throws DaoException;
	 
	/**
	 * 通过　当前登陆账号id　查询　自营导入的SN个数
	 * @param opId 当前登陆账号id
	 * @param orgCode 当前登陆账号机构号
	 * @return 自营导入的SN个数
	 * @throws DaoException
	 */
	 List<Object> selSelfSupportSnCount( Long opId , String orgCode) throws DaoException;
	 

	/**
	 * 通过代理商序号编码查询此代理商
	 * @param agentNumber 代理商序号编码
	 * @return 代理商
	 * @throws DaoException
	 */
	 boolean selOperatorInfoByNumberCode ( String agentType , String agentNumber ) throws DaoException ;

	 /**
	  * 通过分公司id查询此分公司的序号 
	  * @param areaId 分公司id
	  * @return 此分公司的序号 
	  * @throws DaoException
	  */
	String selAgentNumberByAreaId(String areaId) throws DaoException ;
	
	/**
	 * 查询某机构下分公司属性信息，注：所属机构为空，查询所有分公司信息
	 * @param orgCode 所属机构
	 * @return 某机构下分公司属性信息 
	 * @throws DaoException
	 */
	List<Object> selAreaInfoByOrgCode( String orgCode )throws DaoException ;
	
	/**
	 * 查询所有机构信息
	 * @param supId 上级id
	 * @return 机构信息
	 * @throws DaoException
	 */
	 List<Object> selManagerInfoBySupId( String supId ) throws DaoException;
	 
	 /**
	  * 查询代理商列表信息
	  * @param roleType
	  * @param oneagentId
	  * @return
	  * @throws DaoException
	  */
	 List<Object> queryOperatorsByParams(String roleType, String oneagentId) throws DaoException;
	
}
